Description:将两个按升序排列的整数数列,仍按升序合并,存放到另一个数组中,要求每个数依次插入适当的位置,也就是一次到位,不得在新数组中重新排序。
Input:先输入两个整数,分别为以下两个升序数列的长度,然后输入两行升序整数数列。
Output:输出一行升序数列。
Sample Input:
4 3
1 3 4 7
2 3 6
Sample Output:
1 2 3 3 4 6 7
#include<stdio.h>
int main()
{
int m, n, r, i, j, k, t;
scanf("%d%d", &m, &n);
r = m + n, i = m, j = n;
int a[i], b[j], c[r];
for(i = 0; i < m; i++)
scanf("%d", &a[i]);
for(j = 0; j < n; j++)
scanf("%d", &b[j]);
i = 0, j = 0;
for(k = 0; k < m; k++)
{
c[k] = a[i];
i++;
}
for(k = m; k < m + n; k++)
{
c[k] = b[j];
j++;
}
for(k = 0; k < m + n; k++)
for(r = 0; r < m + n; r++)
if(c[r+1] < c[r])
{
t = c[r+1];
c[r+1] = c[r];
c[r] = t;
}
for(r = 1; r <= m + n; r++)
printf("%d ", c[r]);
return 0;
}